package wxk.interview.sort;

/**
 * 选择排序
 * 1.首先在未排序序列中找到最小（大）元素，存放到排序序列的起始位置，
 * 2.然后，再从剩余未排序元素中继续寻找最小（大）元素，
 * 3.然后放到已排序序列的末尾。
 * 4.以此类推，直到所有元素均排序完毕。
 *
 * @author wangxuekai
 * @version 1.0
 * @date 2017/3/4.
 */
public class SelectionSort extends AbstractSort {

    public void sort(int[] arr) {
        doSort(arr);
        print(arr);
    }

    private void doSort(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            int min = i;
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < arr[min]) {
                    swap(arr, min, j);
                }
            }
        }
    }
}
